home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-08-19 | 28.8 KB | 1,154 lines | [TEXT/CWIE] |
- ========================================================================
- PowerPlant Core Classes Notes
- ========================================================================
-
- Version: PowerPlant 1.9.1
- Date: August 19, 1998
- ========================================================================
-
-
- ========================================================================
- Changes Required for Existing Projects
- ========================================================================
-
- * You may need to add the following files to your project:
-
- PP_Constants.cp
- AppearanceLib
- UClassicDialogs.cp
- UModalDialogs.cp
- UKeyFilters.cp
-
- - PP_Constants.cp (inside the PP Headersfolder) contains the
- definitions of Str_Empty, Point_00, and Rect_0000. Putting
- these definitions in a .cp file rather than a header saves
- data space.
-
- - Projects with PPC targets must include AppearanceLib. After
- adding this file (path {Compiler}:MacOS Support:Libraries:
- MacOS Common), make sure to set the "Import Weak" option by
- using the Project Inspector (select the file in the project
- window and choose "Project Inspector" from the Window menu).
-
- If you don't "Import Weak", your program will not launch on
- machines that don't have the Appearance Manager.
-
- - The LDocument class uses UClassicDialogs.cp by default, but
- you should consider using the new Navigation Services support.
- See the "PP Standard Dialogs Note".
-
- - LApplication uses new routines in UModalDialogs.cp and
- UKeyFilters.cp for displaying alerts.
-
- * Removed support for PP_Obsolete_Constants and PP_Obsolete_Array_API
-
- * StResource::Release() is now named StResource::Dispose() to
- adhere to naming conventions used in other classes.
-
- * Removed function UGraphicUtils::InitGraphicUtils(). This function
- just called UEnvironment::InitEnvironment(), so call that
- function directly if you need to.
-
- * Moved the comparison operators for RGBColor, Point, and Rect
- that were in UGraphicUtils.h to a new file called
- UQDOperators.h. You may need to #include <UQDOperators.h>
- in files where you use those operators.
-
- * gDebugThrow and gDebugSignal globals moved inside the
- UDebugging namespace. If you access them directly, you
- need to qualify the name:
-
- PP_PowerPlant::UDebugging::gDebugThrow
- PP_PowerPlant::UDebugging::gDebugSignal
-
- * If you have subclasses of LDocument that use the inherited
- LDocument::AskSaveAs() function [instead of overriding it],
- you should override the new LDocument::GetFileType() function
- to return the file type (four character code) used for
- saving your documents. The Navigation Services requires
- this information.
-
- Standard File doesn't need to know the file type, so you don't
- have to override GetFileType() if you use the Classic Dialogs.
- However, we strongly recommend that you add the override
- anyway. It's very little code and you'll have to update to
- Nav Services eventually if you want your program to run natively
- under Mac OS X.
-
-
- ========================================================================
- Significant New Features
- ========================================================================
-
- * New classes for using Navigation Services (see separate note file
- about PP Standard Dialogs)
-
- * New classes with better support for StandardFile (see separate note
- file about PP Standard Dialogs)
-
- * New LString functions for dealing with floating point numbers
- using flexible formatting options.
-
- * New LString functions for using Int16 numbers
-
- * New LStringRef class which lets you use LString functions to
- manipulate an arbitrary string
-
- * New LTabGroupView class. All Panes that are also Commanders
- enclosed within a LTabGroupView are part of a tab group.
- Similar to LRadioGroupView.
-
- * New UModalAlerts class (within UModalDialogs.h/.cp) with wrappers
- for the Toolbox Alert() calls. The wrappers deactivate the
- desktop and supply an event filter for handling events while
- the alert window is displayed.
-
- * New classes for supporting Contextual Menus.
-
- * New LAppearanceMBAR class. Calls ::MenuEvent(), a new Menu
- Manager call introduced with the Appearance Manager that
- supports menu key equivalents beyond just the Command key.
-
-
- ========================================================================
- General Changes
- ========================================================================
-
- * Added a PowerPlant namespace controlled via macros
- PP_Macros.h #define's
- PP_Begin_Namespace_PowerPlant
- PP_End_Namespace_PowerPlant
-
- controlled by the symbol
- PP_Uses_PowerPlant_Namespace
-
- The default value for PP_Uses_PowerPlant_Namespace is 0 (false)
- for this release. In the future, it will default to true.
-
- If you wish to activate the PowerPlant namespace, put
- #define PP_Uses_PowerPlant_Namespace 1
- in your prefix file.
-
- If you do activate the PowerPlant namespace, you will need
- to explicity qualify PowerPlant types or use a "using"
- declaration. For example,
-
- PowerPlant::LPane *thePane; // explicit qualifier
-
- or
-
- using namespace PowerPlant; // using declaration
-
- LPane *thePane; // Refers to PowerPlant::LPane
-
- For convenience, you may want to define a namespace alias:
-
- namespace PowerPlant { } // Forward declaration
- namespace PP = PowerPlant; // Alias
-
- PP::LPane *thePane; // Use alias. Less typing.
-
- The forward declaration of the PowerPlant namespace is needed
- if you define your alias before #include'ing any PP code,
- such as in a prefix file.
-
- A subtle issue with namespaces occurs with forward class
- declarations. You need to specify the namespace. For example,
-
- class LPane; // Will get errors if using namespaces
-
- namespace PowerPlant { // The right way
- class LPane; // forward declaration with namespaces
- }
-
- Or, if you want to use the conditional macros:
-
- PP_Begin_Namespace_PowerPlant
- class LPane;
- PP_End_Namespace_PowerPlant
-
- Also, don't put your own classes in the PowerPlant namespace.
- It is reserved for Metrowerks code. Define your own namespace
- for your code (or use none at all). This will prevent naming
- conflicts with future releases of PowerPlant.
-
- * Use FOUR_CHAR_CODE macro to define constants such as 'abcd'
-
- * PP is migrating to use the Universal Header typedef's for
- integer types in MacTypes.h rather than the ones in PP_Types.h.
-
- Type MacTypes PP_Types
- ---- -------- --------
- signed char SInt8 Int8
- signed short SInt16 Int16
- signed long SInt32 Int32
-
- unsigned char UInt8 Uint8
- unsigned short UInt16 Uint16
- unsigned long UInt32 Uint32
-
- The PP types are deprecated (still around, but will go away
- some time in the future). The PP_Uses_Old_Integer_Types
- preprocessor symbol (see PP_Macros.h) controls whether the
- PP Types are defined.
-
- * Names of all the PowerPlant precompiled header binaries
- changed to end with ++ (for example, PP_MacHeaders68K++).
- This conforms to the naming conventions used by the
- standard MacHeaders files. This change should not affect
- existing projects, as you should always use the .h file
- (for example, PP_MacHeaders.h) as a prefix file rather
- than the precompiled binary file.
-
- * Minor re-organization of files within the PowerPlant folder
- - New "Standard Dialogs" folder contains new files for
- supporting Navigation Services and Classic Dialogs.
- Moved UStandardFiles and UModalDialogs files into this folder.
-
- - New "Menu Classes" folder contains LMenu, LMenuBar, LMercutioMBAR,
- and LAppearanceMBAR files. Contextual Menus and Menu Utilities
- classes that are currently "In Progress" will move here
- in a later release.
-
-
-
- ========================================================================
- Class Status Changes
- ========================================================================
-
- * Database classes moved to Obsolete
-
-
- ========================================================================
- Source Code Changes
- ========================================================================
-
- ColorAlertIcons.rsrc
- --------------------
- * Updated to Mac OS 8 versions
-
-
- LAMBevelButtonImp
- -----------------
- * SetValue()
- New override. Uses StBevelMenuSetter to set the MenuHandle before
- calling the inherited routine.
-
-
- LAMControlImp
- -------------
- * SetTextTraitsID()
- Don't set forecolor value and mask if color is black. This
- lets the Toolbox dim black text when inactive.
-
- * DeactivaeSelf()
- Do nothing if Toolbox control is already inactive.
-
-
- LAMPopupGroupBoxImp
- -------------------
- * PostSetValue()
- Check for special empty menu rather than nil to determine if we
- need to draw the popup box
-
-
- LAMStaticTextImp
- ----------------
- * ActivateSelf()
- * DeactivateSelf()
- New overrides. Deactivating lightens the text color and activating
- restores the original color.
-
-
- LAMTabsControlImp
- -----------------
- * FocusImp()
- Call inherited FocusImp()
-
-
- LAMTrackActionImp
- -----------------
- * TrackAction()
- Add try/catch block to prevent exception from going back
- through the Toolbox
-
-
- LAppearanceMBAR
- ---------------
- * New class. Use this class instead of LMenuBar (or LMercutioMBAR)
- to support menu key equivalents beyond the Command key. Requires
- the Appearance Manager, so you should check for AM beforehand.
-
-
- LApplication
- ------------
- * LApplication()
- Call UEnvironment::InitEnvironment(). Remove check for ColorQD as
- InitEnvironment() does that.
-
- * ShowAboutBox()
- Calls UModalAlerts::Alert()
-
-
- LArray
- ------
- * Removed PP_Obsolete_Constants support
-
-
- LArrayIterator
- --------------
- * Removed PP_Obsolete_Constants support
-
-
- LBroadcasterEditField
- ---------------------
- * Removed declaration of msg_AllowTargetSwitch constant from
- header file. PP does not use this constant.
-
-
- LCicnButton
- -----------
- * FindHotSpot()
- * PointInHotSpot()
- New overrides. Point is within hot spot if it corresponds to
- a non-white pixel in the icon mask.
-
-
- LControlImp
- -----------
- * Hilite()
- New function
-
-
- LControlPane
- ------------
- * Added class_ID of 'cpan'
-
-
- LDialogBox
- ----------
- * LDialogBox()
- Declared SWindowInfo& as const
-
- * HandleKeyPress()
- Rewrote to use new UKeyFilters::IsEscapeKey() function
-
-
- LDocApplication
- ---------------
- * OpenOrPrintDocList()
- New function. Factors out code for iterating over an AEDescList
- of files that used to be in DoAEOpenOrPrintDoc().
-
- * DoAEOpenOrPrintDoc()
- Calls OpenOrPrintDocList()
-
- * SendAEOpenDoc()
- * SendAECreateDocument()
- Restructured to send AppleEvent with ExecuteAE_No option,
- and to always call OpenDocument()/MakeNewDocument()
-
- * SendAEOpenDocList()
- New function. Sends an AppleEvent for opening a list of documents
- for recording, then calls OpenOrPrintDocList().
-
-
- LDocument
- ---------
- * AskSaveAs()
- Use PP_StandardDialogs::AskSaveFile() instead of StandardPutFile().
- Also, handle situation where user "saves file as" using the
- existing file name.
-
- * AskConfirmRevert()
- New function. Moved code that was in ObeyCommand. Uses
- new PP_StandardDialogs::AskConfirmRevert() call.
-
- * AskSaveChanges()
- New functions. Moved code that was in AttemptClose() and
- AttemptQuitSelf(). Use new PP_StandardDialogs::AskSaveChanges()
- call.
-
- * ObeyCommand()
- Call AskConfirmRevert().
-
- * AttemptClose()
- * AttemptQuitSelf()
- Call AskSaveChanges()
-
- * GetFileType()
- New function. Returns the file type (four character code)
- used for saving Documents. Subclasses should override
- if they support saving to files.
-
-
- LDragAndDrop
- ------------
- * HandleDragTracking()
- * HandleDragReceive()
- * HandleDragSendData()
- * HandleDragInput()
- * HandleDragDrawing()
- Set err to dragNotAcceptedErr when catching an unknown error
- and don't Signal
-
-
- LEditField
- ----------
- * GetSelection()
- New override. Passes back an AEDesc of the selected text.
-
- * LEditField(LStream*)
- Turn off autoscroll for right justified text. Due to
- a bug, this doesn't work.
-
-
- LEditText
- ---------
- * GetSelection()
- New override. Passes back an AEDesc of the selected text.
-
- * InitEditText()
- Turn off autoscroll for right justified text. Due to
- a bug, this doesn't work.
-
-
- LGAChasingArrowsImp
- -------------------
- * DrawSelf()
- Draws arrows in gray if inactive
-
- * AllocateGWorlds()
- New function. Contains code that used to be in Init().
-
- * DisposeGWorlds()
- New function. PP doesn't call this function, but you can if you
- wish to dispose of the GWorlds used internally by this class.
-
-
- LGAProgressBarImp
- -----------------
- * AllocateGWorlds()
- New function. Contains code that used to be in Init().
-
- * DisposeGWorlds()
- New function. PP doesn't call this function, but you can if you
- wish to dispose of the GWorlds used internally by this class.
-
-
- LGATabsControlImp
- -----------------
- * Fixed struct describing 'tab#' resource. Defined STabListRec and
- STabInfo structs.
-
- * LoadTabTitlesFromTabList()
- Rewrote to use new struct definitions to access tab information
-
-
- LGrafPortView
- -------------
- * GetForeAndBackColors()
- New override
-
- * DoKeyPress()
- Changed to return a bool that specifies whether it handled
- the keystroke.
-
-
- LGrowZone
- ---------
- * ~LGrowZone()
- Set sGrowZone to nil
-
-
- LHierarchyTable
- ---------------
- * AddLastChildRow()
- Changed refreshAdjustment to have a value of 0 or 1
- instead of 0 or -1. Avoids warnings about assigning
- a negative number to an unsigned long variable.
-
-
- LMenu
- -----
- * LMenu()
- New constructor for creating menus on-the-fly via
- ::NewMenu() rather than from a resource
-
- * MakeNewMacMenu()
- New static function. Wrapper for ::NewMenu() which
- can create an Appearance-savvy menu.
-
-
- LMenuBar
- --------
- * FindMenuItem()
- * FindNextCommand()
- Declared as "const"
-
-
- LModelDirector
- --------------
- * HandleCreateElementEvent()
- For case typeObjectSpecifier, assign target to return value
- of target->GetInsertionTarget(typeNull)
-
- For case typeInsertionLoc, handle situation where reference
- object is the default (application) object.
-
- Don't put element in reply AppleEvent if the reply
- is typeNull.
-
- * Removed functions for handling open document and print document
- AppleEvents:
-
- HandleOpenOrPrintEvent()
- OpenOrPrintEventHandler()
-
- There's no need to special case those events. The regular
- HandleAppleEvent() function that handles all other events
- works just fine for open document and print document events.
-
- * InstallCallBacks()
- Removed special handlers for open and print events. The
- generic handler is sufficient.
-
- * AppleEventHandler()
- * CreateElementEventHandler()
- * ModelObjectAccessor()
- * ModelObjectListAccessor()
- * OSLDisposeToken()
- * OSLCompareObjects()
- * OSLCountObjects()
- Set err to errAEEventNotHandled or errNoSuchObject when catching
- an unknown error and don't Signal
-
- * OSLCompareObjects()
- Implemented workaround for Apple's unlocked Handle bug as
- discussed in Technote 1095.
-
-
- LModelObject
- ------------
- * HandleClone()
- For case typeInsertionLoc, handle situation where reference
- object is the default (application) object.
-
-
- LOffscreenView
- --------------
- * Draw()
- Erase to background color before calling LView::Draw() to
- be consistent with what happens when drawing offscreen
-
- * DrawOffscreen()
- Call FocusExposed() instead of (IsVisible() && FocusDraw()).
- It does the same thing.
-
-
- LOutlineTable
- -------------
- * GetLocalCellRect()
- New override which does NOT set the rectangle to {0, 0, 0, 0}
- if the Image is outside the Frame.
-
- * InsertCols()
- Added default parameter values for inDataPtr, inDataSize,
- and inRefresh.
-
-
- LPageController
- ---------------
- * SetSelectedPageButtonByIndex()
- Removed bounds checks since LArray::FetchItemAt() checks
- the bounds
-
- * GetPageIndex()
- Call to FetchIndexOf() was wrong. Need to pass address of
- pageButton.
-
- * GetTextTraitsID()
- * GetCurrentIndex()
- * GetPageButtonView()
- Declared non-virtual and const
-
- * GetPageButtons()
- * GetNextIndex()
- * GetControllerMessage()
- * HaveScrollArrows()
- * HaveScrolling()
- Declared non-virtual
-
- * RevealSelectedPageButton()
- Handle case where buttons need to scroll to the right
-
-
- LPane
- -----
- * GetSelection()
- New function. Override to pass back an AEDesc describing
- the current selection within the Pane (if the concept of
- a selection is meaningful).
-
-
- LPlaceHolder
- ------------
- * InstallOccupant()
- * RemoveOccupant()
- Declared virtual
-
-
- LPopupGroupBox
- --------------
- * Use kControlGroupBoxMenuHandleTag instead of
- kControlPopupButtonMenuHandleTag. The two constants are
- the same now, but may be different under Allegro.
-
-
- LPrintout
- ---------
- * GetForeAndBackColors()
- New override
-
- * Declared EPrintAttr as a typedef UInt32 instead of an enum
-
-
- LScrollBar
- ----------
- * ActivateSelf()
- New override. Set hiliting to kControlNoPart.
-
- * DeactivateSelf()
- New override. Set hiliting to kControlDisabledPart.
-
-
- LScrollerView
- -------------
- * ActivateSelf()
- Don't show scroll bars. LScrollBar activates them.
-
- * DeactivateSelf()
- Don't hide scroll bars. LScrollBar deactivates them.
-
- * InvalidateBorder()
- New function called when activating/deactivating to
- redraw the border with the right color.
-
- * ListenToMessage()
- Call AdjustScrollBars() for case msg_ThumbDragged
-
-
- LSharable
- ---------
- * LSharable() [copy constructor]
- * operator = ()
- New functions. Copy has no users.
-
-
- LStdControlImp
- --------------
- * Hilite()
- New override. Calls ::HiliteControl()
-
- * FocusImp()
- Set text traits of both the current and control owner
- port (if they are different)
-
-
- LStdPopupMenu
- -------------
- * GetMacMenuH()
- Check for nil dataH
- Declared "const"
-
-
- LStdScrollBarImp
- ----------------
- * TrackAction()
- Add try/catch block to prevent exception from going back
- through the Toolbox
-
-
- LString
- -------
- * CStringLength()
- Made more efficient by consolodating "for" and "if" statements
- into a single "while" loop.
-
- * Removed operator double_t()
- Replaced by operator double() and operator long double().
-
- * operator double()
- Conversion operator which interprets the string as a
- double floating point number
-
- * operator long double()
- Conversion operator which interprets the string as a
- long double floating point number
-
- * Assign( long double ) with formatting
- Two versions for setting a string from a long double number.
- One version uses an optional formatting string, the other uses
- formatting data structures (which you can get from
- FetchFloatFormat).
-
- These functions call ExtendedToString(), which gives you much
- more control over the number format than the Assign( double_t )
- function, which calls dec2str().
-
- * Assign( double_t ) changed to Assign( long double )
- Existing Assign from floating point changed to use long double
- instead of double_t.
-
- * FetchFloatFormat()
- Static utility which passes back Toolbox data structures
- for number formatting given a formatting string. For
- information about formatting strings, see IM:Text 5-39
-
- The formatting information controls how a floating point
- number is represented as a string. This information includes
- localization data such as the decimal and thousands separator
- (period vs. comma).
-
- * StringToLongDouble()
- Two overloaded static utilities for converting a Pascal
- string to a long double number. One version uses a formatting
- string, the other uses formatting data structures (which
- you can get from FetchFloatFormat).
-
- * Assign( Handle )
- When Handle is bigger than the string, copy as much as
- fits rather than nother.
-
- * operator = ( Int16 )
- * Assign( Int16 )
- * operator += ( Int16 )
- * Append( Int16 )
- New functions. Convert Int16 to a string. Similar to Int32
- versions of these functions.
-
-
- LStr255
- -------
- * New constructors from long double with formatting which
- call the corresponding Assign() functions.
-
- * New constructor and operator= from Int16
-
-
- LStringRef
- ----------
- * New subclass of LString which doesn't allocate space for the
- string. It relies on the client to set the StringPtr to
- an existing string. Thus you can use the functions
- of the LString class on a string stored in another data
- structure. For example,
-
- FSSpec mySpec; // File Specification
-
- // ... Code which obtains an FSSpec ...
-
- // Make LStringRef that points to the name
- // field within the FSSpec
-
- LStringRef fileName(sizeof(mySpec.name), mySpec.name);
-
- // Now we can manipulate the file name using
- // LString functions
-
- fileName += " copy"; // Append text to file name
-
-
- LTextEditView
- -------------
- * GetSelection()
- New override. Passes back an AEDesc of the selected text.
-
-
- LToggleButton
- -------------
- * Defined a copy constructor
-
-
- LView
- -----
- * ScrollImageBy()
- Calling UpdatePort() before calling ScrollBits(). This fixes
- problems when the view scrolls while there is a pending
- update event
-
-
- LWindow
- -------
- * Declared EWindAttr values as const's instead of part of an enum
-
- * Defined window_InFront and window_InBack as const's instead
- of #define's
-
- * SendAESetZoom()
- Restructured to send AppleEvent with ExecuteAE_No option
- and to always call DoSetZoom()
-
-
- PowerPlant Resorcerer TMPLs
- ---------------------------
- * Added definitions in 'PPob' for:
- LTabGroupView
- LCMAttachment
-
-
- PowerPlant.r
- ------------
- * Added definitions in 'PPob' for:
- LTabGroupView
- LCMAttachment
-
-
- PP Copy & Customize.ppob
- ------------------------
- * Created default Txtr resources for system font (128) and application
- font (129). They are set to default settings (size 0, normal style,
- default justification, srcCopy).
-
- * Added two strings to STR# 200 for the titles of the Nav Services
- open and save dialogs
-
-
- PP Copy & Customize.rsrc
- ------------------------
- * Set attributes of ALRT/DITL 204 (Low memory warning) to preloaded
- and locked instead of purgeable. This way, these resources are
- always present so they don't need to be loaded in low memory
- situations.
-
-
- PP DebugAlerts.rsrc
- -------------------
- * Set attributes of ALRT/DITL resources (throw and signal alerts)
- to preloaded and locked instead of purgeable. Also made the
- text area larger to accommodate long error messages.
-
-
- PP_Constants.h
- --------------
- * Defined constants for ExecuteAE_Yes and ExecuteAE_No for specifying
- whether or not to execute an AppleEvent
-
- * Declared Str_Empty, Point_00, and Rect_0000 as extern and put
- actual definitions inside PP_Constants.cp
-
- * Defined delay_Feedback constant for specifying the number of ticks
- to delay when presenting visual feedback
-
-
- PP_KeyCodes.h
- -------------
- * Added char_Dash constant
-
-
- PP_MacHeaders.c
- ---------------
- * Updated to Universal Headers 3.1
-
-
- PP_Macros.h
- -----------
- * Removed support for PP_Obsolete_Constants and PP_Obsolete_Array_API
-
- * Added macros for a PowerPlant namespace
-
- * Added macros for choosing implmentation of standard dialogs
-
- * Added macro for whether to use the old PP integer types
-
-
- PP_Resources.h
- --------------
- * Added definitions of PP and Toolbox resources types using
- the FOUR_CHAR_CODE() macro (from <ConditionalMacros.h>):
-
- ResType_PPob
- ResType_IDList
- ResType_MenuCommands
- ResType_AETable
- ResType_TextTraits
- ResType_MacWindow
- ResType_MenuBar
- ResType_MenuDefProc
- ResType_Driver
-
- * Added constant for new strings in STRx_Standards
- const SInt16 str_OpenDialogTitle = 3;
- const SInt16 str_SaveDialogTitle = 4;
-
- These strings are used for the titles of the Nav Services
- open and save dialogs
-
-
- StAEDescriptor
- --------------
- * Dispose()
- New function which disposes the AEDesc and resets it to
- a null descriptor
-
- * IsNull()
- New functions which returns whether the AEDesc is a
- null descriptor
-
- * operator = ()
- * Assign()
- New functions for setting an existing descriptor to
- a new value. Supported value types are:
- StAEDescriptor&
- Boolean
- SInt16
- SInt32
- OSType
- ConstStringPtr
- FSSpec
-
-
- StDeleter
- ---------
- * StDeleter()
- Added default constructor
-
- * StDeleter(T*)
- Removed default parameter value of nil so that this is no longer
- the default constructor
-
-
- StFractionalPenWidth
- --------------------
- * ~StFractionalPenWidth()
- Reset lineWidthP after call to PicComment() since Handle
- might have moved
-
-
- StHandleBlock
- -------------
- * StHandleBlock() Copy Constructor
- Check for nil Handle before copying
-
- * operator=()
- Check for nil Handle and don't take ownership unless copy succeeds
-
- * Dispose()
- Changed to work for Handles that are resources
-
- * IsValid()
- New function. Returns true if Handle isn't nil.
-
- * IsAResource()
- New function. Returns whether the Handle is a Resource.
-
-
- StHandleLocker
- --------------
- * Adopt()
- * Release()
- * RestoreLockState()
- New functions
-
- * StHandleLocker()
- Changed to use Adopt()
-
- * ~StHandleLocker()
- Changed to use RestoreLockState()
-
-
- StMenuHandleDisposer
- --------------------
- * New class whose destructor disposes of a MenuHandle
- (defined in LMenu.h)
-
-
- StPointerBlock
- --------------
- * IsValid()
- New function. Returns true is Ptr isn't nil.
-
-
- StResource
- ----------
- * Changed name of Release() to Dispose() to match the naming
- conventions used by StHandleBlock and StDeleter.
-
- Also improved the test for determining whether the
- Handle is not a Resource anymore (i.e., it was detached).
-
- * Adopt()
- New function which replaces the underlying Resource handle
-
- * Declared, but didn't implement, copy constructor and assignement
- operator in order to disallow those functions
-
- * Get()
- New function. Returns the Resource handle.
-
- * IsValid()
- New function. Returns true if Resource handle isn't nil.
-
-
- StUnhiliteMenu
- --------------
- * Don't unhilite menu until at least 8 ticks have passed. For key
- commands, this leaves the menu title hilited long enough
- for the user to notice it.
-
-
- StVisRgn
- --------
- * StVisRgn()
- Use inPort instead of mGrafPtr when saving top left. Both point
- to the same port, but the code is smaller using the local variable
- rather than the member variable.
-
-
- TArray
- ------
- * Removed PP_Obsolete_Array_API support
-
- * TArray()
- Added "true" default constructor with no parameters, not even
- ones with default values. This works around a problem where
- the compiler would warn about non-inlined functions for
- classes that have TArray member variables.
-
- * TArray(LComparator*, Boolean)
- Removed default value of nil for LComparator* so that this is
- no longer the default constructor.
-
-
- TString
- -------
- * New constructors from long double with formatting which
- call the corresponding Assign() functions.
-
- * New constructor and operator= from Int16
-
-
- UAppleEventsMgr
- ---------------
- * Removed definition of AETable_Type constant, replacing it with
- resType_AETable which is defined in PP_Resources.h
-
-
- UControlRegistry
- ----------------
- * RegisterClasses()
- If Appearance version is less than 1.0.1 (AM 1.0 shipped with
- Mac OS 8.0), register the GA imps for LPopupButton and
- LPopupGroupBox. Those classes require AM 1.0.1 or later.
-
-
- UDebugging
- ----------
- * Changed UDebugging from a class with all static members to
- a namespace. Code accessing members still use the
- UDebugging:: qualifier, but it's a namespace rather than
- a class.
-
- * debugAction_LowLevelDebugger and debugAction_SourceDebugger are
- now obsolete constants (but still defined). There is a single
- debugAction_Debugger constant.
-
- The separate low-level/source options aren't needed since
- the MW Debugger has a preference option for controlling whether
- it intercepts Debugger() calls or not.
-
- * The following macros for breaking into the debugger are obsolete:
- BreakToLowLevelDebugger_
- BreakStrToLowLevelDebugger_
- BreakToSourceDebugger_
- BreakStrToSourceDebugger_
-
- Just call Debugger or DebugStr directly and set the MW
- Debugger preference option for whether to break into the
- source or low-level debugger.
-
- * Moved gDebugThrow and gDebugSignal globals inside the
- UDebugging namespace.
-
- * SetDebugThrow()
- * SetDebugSignal()
- * GetDebugThrow()
- * GetDebugSignal()
- New functions for accessing the gDebugThrow and gDebugSignal
- static variables
-
- You can still use the SetDebugThrow_ and SetDebugSignal_
- macros instead of the "set" accessor functions.
-
- * DebugThrow()
- New inline function which contains code that used to be in the
- Throw_() macro
-
- Checks debugAction_Debugger instead of the obsolete
- debugAction_LowLevelDebugger and debugAction_SourceDebugger
-
- * Throw_()
- Macro now calls UDebugging::DebugThrow() inline function
-
- * SignalPStr_()
- Checks debugAction_Debugger instead of the obsolete
- debugAction_LowLevelDebugger and debugAction_SourceDebugger
-
-
- UEnvironment
- ------------
- * InitEnvironment()
- - Fixed test for Appearance version 1.0.1
-
-
- UKeyFilters
- -----------
- * IsEscapeKey()
- New function which returns whether a key down event is
- an escape key press
-
-
- UQDOperators
- ------------
- * New header file defining inline comparison operators for
- the QuickDraw types RGBColor, Point, and Rect
-
-
- UScreenPort
- -----------
- * Dispose()
- Call ClosePort() or CloseCPort()
-
-
- UStandardFile
- -------------
- * GetDirectory()
- Changed name of parameter from ioReply to outReply since
- it is an output only parameter.
-
- Changed to use functions in UClassicDialogs.
-
- This function is almost identical to
- UClassicDialogs::AskChooseFolder(). The only difference
- is that GetDirectory() lets you specify the ID of the
- DLOG resource.
-
- * FileFilter_Directories()
- * DialogHook_SelectDirectory()
- * SetSelectButtonTitle()
- Removed. Equivalent functions are in UClassicDialogs.
-
-
- UTextDrawing
- ------------
- * DrawWithJustification()
- Call TextWidth() to see if all text fits on one line before
- calling StyledTextBreak(). This works around an apparent bug
- in StyledTextBreak when the text is exactly the same width as
- the rectangle in which to draw.
-
-
- UTextTraits
- -----------
- * SetTETextTraits()
- Adjusted logic to remove "return" from middle of function